//条件编译，避免重复包含这个头文件
#ifndef __MYSTDIO_H__
#define __MYSTDIO_H__

//定义刷新方式
#define FLUSH_NONE 1
#define FLUSH_LINE 2
#define FLUSH_FULL 4

#define SIZE 4096
#define UMASK 0666//权限掩码

#define FORCE 1
#define NORMAL 2
//定义结构
typedef struct MY_IO_FILE
{
    int fileeno;//文件描述符
    int flag;//刷新方式
    char outbuffer[SIZE];//输出缓冲区
    int curr;//当前大小
    int cap;//总容量
}MYFILE;

//打开文件 关闭文件 将数据写入文件 刷新文件
MYFILE* my_fopen(const char* filename, const char* mode);
void my_fclose(MYFILE* fp);//传递FILE指针，其中有文件描述符
int my_fwrite(const char* s , int size , MYFILE*fp);//FILE指针中有mode
void my_fflush(MYFILE* fp);

#endif
